<%@page import="java.util.TreeMap"%>
<%@page import="ca.qc.bdeb.info.pp2.tp2.application.ProvinceBean"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="ca.qc.bdeb.info.pp2.tp2.application.PaysBean"%>
<%@page import="ca.qc.bdeb.info.pp2.tp2.controleur.ConstantesWeb"%>
<%@page errorPage="error.jsp" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Rechercher une propriété - <%=ConstantesWeb.NOM_COMPAGNIE%></title>
        <link rel="stylesheet" type="text/css" href="design.css" />
        <script type="text/javascript">
            <!--

            function addOption(theSel, theText, theValue)
            {
                var newOpt = new Option(theText, theValue);
                var selLength = theSel.length;
                theSel.options[selLength] = newOpt;
            }

            function deleteOption(theSel, theIndex)
            { 
                var selLength = theSel.length;
                if(selLength>0)
                {
                    theSel.options[theIndex] = null;
                }
            }

            function moveOptions(theSelFrom, theSelTo)
            {
  
                var selLength = theSelFrom.length;
                var selectedText = new Array();
                var selectedValues = new Array();
                var selectedCount = 0;
  
                var i;
  
                for(i=selLength-1; i>=0; i--)
                {
                    if(theSelFrom.options[i].selected)
                    {
                        selectedText[selectedCount] = theSelFrom.options[i].text;
                        selectedValues[selectedCount] = theSelFrom.options[i].value;
                        deleteOption(theSelFrom, i);
                        selectedCount++;
                    }
                }
  
                for(i=selectedCount-1; i>=0; i--)
                {
                    addOption(theSelTo, selectedText[i], selectedValues[i]);
                }
            }

            function IsNumeric(sText)
            {
                var ValidChars = "0123456789";
                var IsNumber=true;
                var Char;
 
                for (i = 0; i < sText.length && IsNumber == true; i++) 
                { 
                    Char = sText.charAt(i); 
                    if (ValidChars.indexOf(Char) == -1) 
                        IsNumber = false;
                }
                
                return IsNumber;
            }
            
            function IsDate(x) 
            {
                return (x.match(/^[0-9]{4}$/) == x)
            }
            
            function validateForm(forme) 
            {
                var x=document.forms[forme]["<%=ConstantesWeb.VALEUR_PRIX_BAS%>"].value;
                if (!IsNumeric(x)) {
                    alert("Le prix peut contenir seulement des chiffres.");
                    return false;
                }
                
                x=document.forms[forme]["<%=ConstantesWeb.VALEUR_PRIX_HAUT%>"].value;
                if (!IsNumeric(x)) {
                    alert("Le prix peut contenir seulement des chiffres.");
                    return false;
                }
                
                x=document.forms[forme]["<%=ConstantesWeb.VALEUR_NOMBRE_CHAMBRES%>"].value;
                if (!IsNumeric(x)) {
                    alert("Le nombre de chambre peut contenir seulement des chiffres.");
                    return false;
                }
                
                x=document.forms[forme]["<%=ConstantesWeb.VALEUR_NOMBRE_SALLES_BAINS%>"].value;
                if (!IsNumeric(x)) {
                    alert("Le nombre de salles de bains peut contenir seulement des chiffres.");
                    return false;
                }
                
                x=document.forms[forme]["<%=ConstantesWeb.VALEUR_NOMBRE_ETAGES%>"].value;
                if (!IsNumeric(x)) {
                    alert("Le nombre d'étages peut contenir seulement des chiffres.");
                    return false;
                }
                
                x=document.forms[forme]["<%=ConstantesWeb.VALEUR_NOMBRE_PIECE%>"].value;
                if (!IsNumeric(x)) {
                    alert("Le nombre de pièces peut contenir seulement des chiffres.");
                    return false;
                }
                
                x=document.forms[forme]["<%=ConstantesWeb.VALEUR_ANNEE_CONSTRUCTION%>"].value;
                if (!IsDate(x) && !(x == null || x == "")) {
                    alert("L'année de contruction doit oubligatorement contenir 4 chiffres ou rien.");
                    return false;
                }
                return true;
            }
            //-->
        </script>
    </head>
    <body>
        <jsp:include page="header.jsp" />
        <h1>Rechercher une propriété</h1>
        <form name="rechercherproprietes" action="./Entree" onsubmit="return validateForm('rechercherproprietes')">   
            <input type="hidden" name="cmd" value="<%=ConstantesWeb.CMD_RECHERCHER_PROPRIETES%>"/>
            <div style="float: left">
                <!--Table des pays -->
                <table style="border:0">   
                    <tr><th align="left">Pays</th>
                    </tr>
                    <tr>
                        <td>
                            <select name="<%=ConstantesWeb.LISTE_PAYS%>" onchange="form.submit()">                
                                <%
                                    TreeMap<String, String> valeursListePays = (TreeMap<String, String>) (request.getAttribute(ConstantesWeb.VALEURS_LISTE_PAYS));
                                    String selection = (String) (request.getAttribute("selectionListePays"));

                                    for (String id : valeursListePays.navigableKeySet()) {
                                        out.print("<option value=\"" + id + "\"");

                                        if (id.equalsIgnoreCase(selection)) //Resélectionne la valeur
                                            out.print("selected=\"selected\"");

                                        out.print(">" + valeursListePays.get(id) + "</option>");
                                    }%>  
                            </select> 
                        </td>
                    </tr>
                </table>

                <!--Table des provinces -->
                <table style="border:0"> 
                    <tr><th align="left">Provinces</th>
                    </tr>
                    <tr>
                        <td>
                            <select name="<%=ConstantesWeb.LISTE_PROVINCES%>" onchange="form.submit()">
                                <%
                                    TreeMap<String, String> valeursListeProvinces = (TreeMap<String, String>) (request.getAttribute(ConstantesWeb.VALEURS_LISTE_PROVINCES));
                                    selection = (String) (request.getAttribute(ConstantesWeb.SELECTION_LISTE_PROVINCES));

                                    for (String id : valeursListeProvinces.navigableKeySet()) {
                                        out.print("<option value=\"" + id + "\"");

                                        if (id.equalsIgnoreCase(selection)) //Resélectionne la valeur
                                            out.print("selected=\"selected\"");

                                        out.print(">" + valeursListeProvinces.get(id) + "</option>");
                                    }%>  
                            </select> 
                        </td>
                    </tr>
                </table>

                <!--Table des villes -->
                <table style="border:0"> 
                    <tr>
                        <th align="left">Villes</th>
                    </tr>
                    <tr>
                        <td>
                            <select name="<%=ConstantesWeb.LISTE_VILLES%>" size="10" multiple="multiple" onchange="form.submit()">
                                <%
                                    TreeMap<String, String> valeursListeVilles = (TreeMap<String, String>) (request.getAttribute(ConstantesWeb.VALEURS_LISTE_VILLES));
                                    String[] selectionMultiple = (String[]) request.getAttribute(ConstantesWeb.SELECTION_LISTE_VILLES);

                                    for (String id : valeursListeVilles.navigableKeySet()) {
                                        out.print("<option value=\"" + id + "\"");

                                        for (int i = 0; i < selectionMultiple.length; i++)
                                            if (id.equalsIgnoreCase(selectionMultiple[i])) //Resélectionne la valeur
                                                out.print("selected=\"selected\"");
                                        out.print(">" + valeursListeVilles.get(id) + "</option>");
                                    }%>  
                            </select>
                        </td>
                    </tr>
                </table>

                <!--Table des quartiers et quartiers choisis -->
                <table style="border:0">
                    <tr>
                        <th>Quartiers</th>
                        <th></th>
                        <th>Quartiers choisis</th>
                    </tr>
                    <tr>
                        <td>
                            <select id="sel1" name="<%=ConstantesWeb.LISTE_QUARTIERS%>" size="10" multiple="multiple" style="width:200px" ondblclick="moveOptions(this.form.sel1, this.form.sel2);">
                                <%
                                    TreeMap<String, String> valeursListeQuartiers = (TreeMap<String, String>) (request.getAttribute(ConstantesWeb.VALEURS_LISTE_QUARTIERS));
                                    selection = (String) request.getAttribute(ConstantesWeb.SELECTION_LISTE_QUARTIERS);

                                    for (String id : valeursListeQuartiers.navigableKeySet()) {
                                        out.print("<option value=\"" + id + "\"");

                                        if (id.equalsIgnoreCase(selection)) //Resélectionne la valeur
                                            out.print("selected=\"selected\"");

                                        out.print(">" + valeursListeQuartiers.get(id) + "</option>");
                                    }%>  
                            </select>
                        </td>
                        <td align="center" valign="middle">
                            <input type="button" value="--&gt;"
                                   onclick="moveOptions(this.form.sel1, this.form.sel2);" /><br />
                            <input type="button" value="&lt;--"
                                   onclick="moveOptions(this.form.sel2, this.form.sel1);" /><br />
                        </td>
                        <td>
                            <select name="<%=ConstantesWeb.QUARTIERS_CHOSIS%>" id="sel2" size="10" multiple="multiple" ondblclick="moveOptions(this.form.sel2, this.form.sel1);" style="width:200px">
                            </select>
                        </td>
                    </tr>
                </table>
                
                <!-- Table du prix croissant/décroissant -->
                <table>
                    <tr>
                        <td>
                            Affichage des prix décroissant :
                        </td>
                        <td>
                            <input type="checkbox" name="<%=ConstantesWeb.VALEUR_PRIX_ORDRE%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_PRIX_ORDRE)%>"
                                   <%if (request.getAttribute(ConstantesWeb.VALEUR_PRIX_ORDRE).equals(ConstantesWeb.SELECTION_CHECKBOX_ON)) {%> checked="yes"<%}%>/>                                
                        </td>
                    </tr>
                </table>

            </div>

            <!-- critères de recherches -->
            <table>
                <tr>
                    <th colspan="2">Prix</th>
                </tr>
                <tr>
                    <td align="right">De : </td>
                    <td>
                        <input type="text" name="<%=ConstantesWeb.VALEUR_PRIX_BAS%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_PRIX_BAS)%>"/>
                    </td>
                </tr>
                <tr>
                    <td align="right">À : </td>
                    <td>
                        <input type="text" name="<%=ConstantesWeb.VALEUR_PRIX_HAUT%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_PRIX_HAUT)%>"/>
                    </td>
                </tr>          
                <tr>
                    <th colspan="2">Critères de recherche</th>
                </tr>
                <tr>
                    <td align="right">Nombre de chambres : </td>
                    <td>
                        <input type="text" name="<%=ConstantesWeb.VALEUR_NOMBRE_CHAMBRES%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_NOMBRE_CHAMBRES)%>"/>
                    </td>
                </tr>
                <tr>
                    <td align="right">Nombre de salles de bains : </td>
                    <td>
                        <input type="text" name="<%=ConstantesWeb.VALEUR_NOMBRE_SALLES_BAINS%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_NOMBRE_SALLES_BAINS)%>"/>
                    </td>
                </tr>
                <tr>
                    <td align="right">Nombre d'étages : </td>
                    <td>
                        <input type="text" name="<%=ConstantesWeb.VALEUR_NOMBRE_ETAGES%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_NOMBRE_ETAGES)%>"/>
                    </td>
                </tr>
                <tr>
                    <td align="right">Nombre de pièces : </td>
                    <td>
                        <input type="text" name="<%=ConstantesWeb.VALEUR_NOMBRE_PIECE%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_NOMBRE_PIECE)%>"/>
                    </td>
                </tr>
                <tr>
                    <td align="right">Année de construction : </td>
                    <td>
                        <input type="text" name="<%=ConstantesWeb.VALEUR_ANNEE_CONSTRUCTION%>" value="<%=request.getAttribute(ConstantesWeb.VALEUR_ANNEE_CONSTRUCTION)%>"/>
                    </td>
                </tr>
                <tr>
                    <td align="right">Type de maison : </td>
                    <td>
                        <select name="<%=ConstantesWeb.LISTE_TYPE_MAISONS%>">
                            <%
                                TreeMap<String, String> valeursListeTypeMaisons = (TreeMap<String, String>) (request.getAttribute(ConstantesWeb.VALEURS_LISTE_TYPE_MAISONS));
                                selection = (String) (request.getAttribute(ConstantesWeb.SELECTION_LISTE_TYPE_MAISONS));

                                out.print("<option value=\"" + "-1" + "\"");
                                out.print("selected=\"selected\"");
                                out.print(">" + "Indifférent" + "</option>");

                                for (String id : valeursListeTypeMaisons.navigableKeySet()) {
                                    out.print("<option value=\"" + id + "\"");

                                    if (id.equalsIgnoreCase(selection)) //Resélectionne la valeur
                                        out.print("selected=\"selected\"");

                                    out.print(">" + valeursListeTypeMaisons.get(id) + "</option>");
                                }%>
                        </select>
                    </td>
                </tr>          
                <tr>
                    <td align="right">Piscine : </td>
                    <td>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_PISCINE%>" value="<%=ConstantesWeb.SELECTION_RADIO_OUI%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_PISCINE).equals(ConstantesWeb.SELECTION_RADIO_OUI)) {%> checked<%}%>/>Oui<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_PISCINE%>" value="<%=ConstantesWeb.SELECTION_RADIO_NON%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_PISCINE).equals(ConstantesWeb.SELECTION_RADIO_NON)) {%> checked<%}%>/>Non<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_PISCINE%>" value="<%=ConstantesWeb.SELECTION_RADIO_INDIFFERENT%>" 
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_PISCINE).equals(ConstantesWeb.SELECTION_RADIO_INDIFFERENT)) {%> checked<%}%>/>Indifférent
                    </td>
                </tr>
                <tr>
                    <td align="right">Stationnement : </td>
                    <td>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_STATIONNEMENT%>" value="<%=ConstantesWeb.SELECTION_RADIO_OUI%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_STATIONNEMENT).equals(ConstantesWeb.SELECTION_RADIO_OUI)) {%> checked<%}%>/>Oui<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_STATIONNEMENT%>" value="<%=ConstantesWeb.SELECTION_RADIO_NON%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_STATIONNEMENT).equals(ConstantesWeb.SELECTION_RADIO_NON)) {%> checked<%}%>/>Non<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_STATIONNEMENT%>" value="<%=ConstantesWeb.SELECTION_RADIO_INDIFFERENT%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_STATIONNEMENT).equals(ConstantesWeb.SELECTION_RADIO_INDIFFERENT)) {%> checked<%}%>/>Indifférent
                    </td>
                </tr>
                <tr>
                    <td align="right">Sous-sol : </td>
                    <td>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_SOUS_SOL%>" value="<%=ConstantesWeb.SELECTION_RADIO_OUI%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_SOUS_SOL).equals(ConstantesWeb.SELECTION_RADIO_OUI)) {%> checked<%}%>/>Oui<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_SOUS_SOL%>" value="<%=ConstantesWeb.SELECTION_RADIO_NON%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_SOUS_SOL).equals(ConstantesWeb.SELECTION_RADIO_NON)) {%> checked<%}%>/>Non<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_SOUS_SOL%>" value="<%=ConstantesWeb.SELECTION_RADIO_INDIFFERENT%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_SOUS_SOL).equals(ConstantesWeb.SELECTION_RADIO_INDIFFERENT)) {%> checked<%}%>/>Indifférent
                    </td>
                </tr>
                <tr>
                    <td align="right">Garage : </td>
                    <td>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_GARAGE%>" value="<%=ConstantesWeb.SELECTION_RADIO_OUI%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_GARAGE).equals(ConstantesWeb.SELECTION_RADIO_OUI)) {%> checked<%}%>/>Oui<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_GARAGE%>" value="<%=ConstantesWeb.SELECTION_RADIO_NON%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_GARAGE).equals(ConstantesWeb.SELECTION_RADIO_NON)) {%> checked<%}%>/>Non<br/>
                        <input type="radio" name="<%=ConstantesWeb.VALEUR_GARAGE%>" value="<%=ConstantesWeb.SELECTION_RADIO_INDIFFERENT%>"
                               <%if (request.getAttribute(ConstantesWeb.VALEUR_GARAGE).equals(ConstantesWeb.SELECTION_RADIO_INDIFFERENT)) {%> checked<%}%>/>Indifférent
                    </td>
                </tr>
            </table>
                    
            <button type="submit" onclick="document.rechercherproprietes.cmd.value = '<%=ConstantesWeb.CMD_AFFICHER_PROPRIETES%>'">Rechercher</button>   
        </form>
        <p>*Aucun critère n'est nécessaire pour la recherche.</p>
    </body>
</html>
